package cl.tinet.trainee.salas.ejb.reserva;

import java.util.Date;
import java.util.List;

import javax.ejb.Remote;

import cl.tinet.trainee.salas.model.ReservaSala;
import cl.tinet.trainee.salas.model.Segmentos;
import cl.tinet.trainee.salas.model.excepciones.NoExisteReserva;


@Remote
 public interface ReservaSalaInterfaz{

    /**
     * 
     * BEAN. Buscar una reserva especifica.
     *
     * @param usuario
     * @return
     */
	ReservaSala buscarReservaSalaBean(ReservaSala dato);
	/**
	 * 
	 * TODO doc information expected for buscarUsuarioAgregado method.
	 *
	 * @param datoUsuario
	 * @throws GeneralException
	 */
	 boolean buscarReservaSalaAgregado(ReservaSala dato);
	/**
	 * 
	 * TODO doc information expected for modificarUsuarioBean method.
	 *
	 * @param datoUsuario
	 */
	 void modificarReservaSalaBean(ReservaSala dato);
	/**
	 * 
	 * TODO doc information expected for eliminarUsuarioBean method.
	 *
	 * @param datoUsuario
	 * @throws NoExisteReserva 
	 */
	 void eliminarReservaSalaBean(ReservaSala dato) throws NoExisteReserva;
	/**
	 * 
	 * TODO doc information expected for agregarUsuarioBean method.
	 *
	 * @param datoUsuario
	 */
	 void agregarReservaSalaBean(ReservaSala dato);
	/**
	 * 
	 * TODO doc information expected for buscarUsuarios method.
	 *
	 * @param datoUsuario
	 * @return
	 */
	 List<ReservaSala> buscarReservaSalaTodos(int codSala, String fechaSeleccionada);
	 List<ReservaSala> buscarReservaSalaNormal(int codSala, String fechaSeleccionada,String username); 
	 /**
	  * 
	  * Validar la fecha que selecciona el usuario.
	  *
	  * @param fecha
	  * @return
	  */
	 boolean validarFechaSeleccionada(Date fecha);
	 /**
	  * 
	  * Bean que permitir obtener los segmentos.
	  *
	  * @return
	  */
	 List<Segmentos> buscarSegmentos();

}
